Ch02 Stateful Tracking 典型與意料之外的儲存位置/Day9 Favicon SuperCookie
- Favicon(favoriites icon):一張與網站或網頁相關的圖片,通常會顯示在分頁的名稱之前以及書籍列等地方,幫助使用者識別不同的網站
- 瀏覽器取得favicon的方式:
1.直接存取/favicon.ico,有找到檔案即直接使用
2.網頁開發者直接指定Favivon供瀏覽器參考
<link rel="shortcut icon" href="/resource/fav.ico">
- Favicon 下載後會儲存於 cache 中,與其他 cache 類似。
- Favicon cache 有獨特特徵,瀏覽器會考慮不同網域和路徑來儲存。
- 使用 cache 時,瀏覽器會檢查 HINL 中的 favicon 路徑是否改變,這使開發者能根據情境提供不同的 favicon,但也增加了攻擊風險。
- 在隱私模式下,瀏覽器可以讀取 favicon cache,但不會寫入,這與一般 cache 的行為不同。
- 即使使用者清空 cookie 和 cache,favicon cache 似乎不會被清除。
- 這些特徵使得 favicon 可以用來儲存識別碼,即使在隱私模式下也能讀取。
- Favicon SuperCookie 的概念類似於 HISTS SuperCookie,透過判斷子網域的 favicon cache 來識別對應的位數。
- 在寫入階段,利用連環的302 redirection 來使瀏覽器嘗試造訪指定的 favicon。
假設 idcntificr 是10100。
- 使用者第一次造訪 https://tracker.example/,瀏覽器存取 /favicon.ico。
- 伺服器收到/favicon.ico 請求,得知這是第一次造訪,故給予一個 identifier
10100。
3.伺服器回應 302 redirection,要求瀏覽器造訪/pathl。
- 瀏覽器造訪/pathl,並根據 HINL 中要求下載/faviconl.ico。
- 伺服器回應302 redirection,要求造訪/path3。
- 瀏覽器造訪/path3,並根據 HTMI. 中要求下載/favicon3.ico。
在讀取階段,同樣是利用連環的302 redirection,伺服器並檢查是否有請求favicon
- 使用者再次造訪 https:i/trackerexample/,並使用 /favicon.ico 的 cache。
2.伺服器沒有收到/favicon.ico 請求,得知這是重複造訪。
3.伺服器回應 302 redirection,要求瀏覽器造訪 /pathl。
- 瀏覽器造訪/pathl,並使用/faviconl.ico 的 cache。
- 伺服器沒有收到/faviconl.ico,故 identifier 的第一位是1。
- 伺服器回應 302 redirection,要求造訪 /path2。
- 瀏覽器造訪/path2,並根據 HITMIL, 中要求下載/favicon2.ico。
- 伺服器收到 /Favicon2.ico,故 identifier 的第一位是2。伺服器對 /favicon2.
ico 的請求回應 404 Not Found,以確保其不會被放入 cache。
- 伺服器回應302 redircction,要求造訪/path3。
資料來源、選用書籍:<Web Tracking的資安攻擊與防禦策略>鐵人賽專用書